package cn.iocoder.yudao.module.crossborder.finance.enums;

import cn.iocoder.yudao.framework.common.exception.ErrorCode;

/**
 * CrossBorder Finance 错误码枚举类
 *
 * crossborder finance 系统，使用 1-022-000-000 段
 */
public interface ErrorCodeConstants {

    // ========== 财务结算相关 1-022-001-000 ============
    ErrorCode SETTLEMENT_NOT_EXISTS = new ErrorCode(1_022_001_000, "财务结算记录不存在");
    ErrorCode SETTLEMENT_ALREADY_EXISTS = new ErrorCode(1_022_001_001, "财务结算记录已存在");
    ErrorCode SETTLEMENT_STATUS_INVALID = new ErrorCode(1_022_001_002, "财务结算状态无效");
    ErrorCode SETTLEMENT_AMOUNT_INVALID = new ErrorCode(1_022_001_003, "结算金额无效");

    // ========== 汇率管理相关 1-022-002-000 ============
    ErrorCode EXCHANGE_RATE_NOT_EXISTS = new ErrorCode(1_022_002_000, "汇率不存在");
    ErrorCode EXCHANGE_RATE_INVALID = new ErrorCode(1_022_002_001, "汇率无效");
    ErrorCode EXCHANGE_RATE_EXPIRED = new ErrorCode(1_022_002_002, "汇率已过期");
    ErrorCode CURRENCY_NOT_SUPPORTED = new ErrorCode(1_022_002_003, "不支持的货币类型");

    // ========== 费用计算相关 1-022-003-000 ============
    ErrorCode FEE_CALCULATION_ERROR = new ErrorCode(1_022_003_000, "费用计算错误");
    ErrorCode FEE_RULE_NOT_EXISTS = new ErrorCode(1_022_003_001, "费用规则不存在");
    ErrorCode FEE_TYPE_INVALID = new ErrorCode(1_022_003_002, "费用类型无效");
    ErrorCode FEE_AMOUNT_INVALID = new ErrorCode(1_022_003_003, "费用金额无效");

    // ========== 账单管理相关 1-022-004-000 ============
    ErrorCode BILL_NOT_EXISTS = new ErrorCode(1_022_004_000, "账单不存在");
    ErrorCode BILL_STATUS_INVALID = new ErrorCode(1_022_004_001, "账单状态无效");
    ErrorCode BILL_ALREADY_PAID = new ErrorCode(1_022_004_002, "账单已支付");
    ErrorCode BILL_AMOUNT_MISMATCH = new ErrorCode(1_022_004_003, "账单金额不匹配");

    // ========== 支付对账相关 1-022-005-000 ============
    ErrorCode RECONCILIATION_NOT_EXISTS = new ErrorCode(1_022_005_000, "对账记录不存在");
    ErrorCode RECONCILIATION_STATUS_INVALID = new ErrorCode(1_022_005_001, "对账状态无效");
    ErrorCode RECONCILIATION_AMOUNT_MISMATCH = new ErrorCode(1_022_005_002, "对账金额不匹配");
    ErrorCode RECONCILIATION_DATE_INVALID = new ErrorCode(1_022_005_003, "对账日期无效");

    // ========== 财务报表相关 1-022-006-000 ============
    ErrorCode FINANCIAL_REPORT_NOT_EXISTS = new ErrorCode(1_022_006_000, "财务报表不存在");
    ErrorCode FINANCIAL_REPORT_GENERATE_ERROR = new ErrorCode(1_022_006_001, "财务报表生成失败");
    ErrorCode FINANCIAL_REPORT_DATE_INVALID = new ErrorCode(1_022_006_002, "财务报表日期无效");
    ErrorCode FINANCIAL_REPORT_TYPE_INVALID = new ErrorCode(1_022_006_003, "财务报表类型无效");

}
